package com.ruoyi.common.core.delay;

/**
 * @Author: wyx
 * @Date: 2023/5/29 20:47
 */
public interface IDelayEvent<T> {
    /**
     * 添加延迟对象到延时队列
     *
     * @param itemDelayed 延迟对象
     * @return boolean
     */
    boolean addToItemDelayedQueue(ItemDelayed<T> itemDelayed);

    /**
     * 根据对象添加到指定延时队列
     *
     * @param data 数据对象
     * @return boolean
     */
    boolean addToDelayQueue(T data);

    /**
     * 移除指定的延迟对象从延时队列中
     *
     * @param data
     */
    void removeToDelayQueue(T data);

    T getData(Long dataId);
}
